Machine programming and control systems are generally used for controlling processes that involve devices such as relays, motors, solenoids, valves, switches and other electrical and electromechanical devices. Exemplary processes include machining, drilling, welding, material handling, and material assembly. Generally the machine programming and control systems are operated according to predefined control logic such as flowcharts, ladder diagrams, and/or relay ladder logic. A typical machine programming and control project often includes other design elements such as operator screens, simulation logic, facilities layout, network design, process flow, database design, and other related information.
Multiple developers are often involved in the design testing and review of the machine programming and control project. Oftentimes, the project developers are associated with different organizations within a company and/or with different companies. These developers often need to send copies of a complete project to one another, to new developers involved in the project, and/or to individuals who may or may not be involved in the design of the project. Collection of all of the different elements of the project can be difficult particularly when the project elements are located on different machines. Once collected, it is also difficult to transmit these documents over distributed communication systems such as the Internet due to the size and number of project elements that are associated with the project.